/**
 * 制定技术标准
 */
/**
 * 数据源
 * 
 * @class enterprsie_standard_store
 * @extends Ext.data.GroupingStore
 */
enterprsie_standard_store = Ext.extend(Ext.data.GroupingStore, {
	constructor : function() {
		// this.cfg = _cfg;
		enterprsie_standard_store.superclass.constructor.call(this, {
			proxy : new Ext.data.HttpProxy({
				url : 'cxxqysjsb/enterprise_standard/getallenterprsie_standard.action?uid='
						+ userId,// 用户的ID
				method : 'post'
			}),
			autoLoad : true,
			sortInfo : {
				field : 'standard_id',
				direction : "ASC"
			},
			groupField : 'standard_year',
			reader : new Ext.data.JsonReader({
						fields : ['standard_id', 'editable',
								'standard_type',
								'standard_participation_style',
								'enterprise_id', 'standard_is_new',
								'standard_type_sb', 'standard_check_pass',
								'standard_year', 'standard_time',
								'standard_name']
					})
		})
	}
});
enterprsie_standard_info_grid = Ext.extend(Ext.grid.GridPanel, {
	store : null,
	addwin : null,
	editwin : null,
	constructor : function() {
		this.store = new enterprsie_standard_store();
		this.addwin = new addenterprsie_standard_formpanel_win();
		enterprsie_standard_info_grid.superclass.constructor.call(this, {
			loadMask : {
				msg : '数据加载中...'
			},
			title : '企业基本情况-企业标准制定情况',
			iconCls : 'SMLPoolManage_sml',
			sm : arrsm,
			frame : true,
			view : new Ext.grid.GroupingView({
				forceFit : true,
				groupTextTpl : '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "条数据" : "条数据"]})'
			}),
			cm : new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
						header : 'ID',
						width : 10,
						dataIndex : 'standard_id',
						id : 'standard_id',
						hidden : true,
						align : 'center'
					}, {
						header : '企业编号',
						width : 10,
						dataIndex : 'enterprise_id',
						id : 'enterprise_id',
						hidden : true,
						align : 'center'
					}, {
						header : '年度',
						width : 10,
						dataIndex : 'standard_year',
						id : 'standard_year',
						renderer : this.getstandard_yearName,
						hidden : true,
						align : 'center'
					}, {
						header : '标准类型',
						width : 100,
						dataIndex : 'standard_type',
						id : 'standard_type',
						renderer : this.getstandard_typename,
						sortable : false,
						align : 'center'
					}, {
						header : '标准名称',
						width : 100,
						dataIndex : 'standard_name',
						id : 'standard_name',
						sortable : false,
						align : 'center'
					}, {
						header : '参与方式',
						width : 100,
						dataIndex : 'standard_participation_style',
						id : 'standard_participation_style',
						sortable : false,
						renderer : this.standard_participation_styleName,
						align : 'center'
					}, {
						header : '制定时间',
						width : 100,
						dataIndex : 'standard_time',
						id : 'standard_time',
						sortable : false,
						align : 'center'
					}, {
						header : '申报类型',
						width : 100,
						dataIndex : 'standard_type_sb',
						id : 'standard_type_sb',
						sortable : false,
						renderer : this.getcheckType,
						align : 'center'
					}, {
						header : '审核状态',
						width : 100,
						dataIndex : 'standard_check_pass',
						id : 'standard_check_pass',
						sortable : false,
						renderer : this.standard_check_passName,
						align : 'center'
					}]),
			tbar : [{
				text : '增加<font color="red">' + OPTION_NDDECLARE_YEAR + '年'
						+ getDataType(OPTION_DATA_TYPE) + '</font>标准制定数据',
				scope : this,
				iconCls : 'itemadd',
				handler : function() {
					this.addwin.show(Ext.getDom('login-view'));
				}
			}, '-', {
				text : '修改',
				scope : this,
				tooltip:'只允许修改草稿数据',
				iconCls : 'smlEdit_edit',
				handler : function() {
					var ro = this.getSelectionModel().getSelected();
					if (!ro) {
						Ext.Msg.show({
									title : '提示',
									msg : '没有选择数据',
									icon : Ext.Msg.ERROR,
									buttons : Ext.Msg.OK
								});
						return;
					}
					var checkresult = ro.get('standard_check_pass');
					if (checkresult == 0) {
						Ext.Msg.show({
									title : '提示',
									msg : '正在审核的数据不能修改',
									icon : Ext.Msg.ERROR,
									buttons : Ext.Msg.OK
								});
						return;
					}
					if (checkresult == 1 || checkresult == 2) {
						Ext.Msg.show({
									title : '提示',
									msg : '审核完成的数据不能修改',
									icon : Ext.Msg.ERROR,
									buttons : Ext.Msg.OK
								});
						return;
					}
					var cfg = {
						sid : ro.get('standard_id'),
						eid : ro.get('enterprise_id'),
						standard_year : ro.get('standard_year'),
						standard_type : ro.get('standard_type'),
						standard_name : ro.get('standard_name'),
						standard_participation_style : ro
								.get('standard_participation_style'),
						standard_time : ro.get('standard_time'),
						standard_type_sb : ro.get('standard_type_sb')
					};
					this.editwin = new editenterprsie_standard_formpanel_win(cfg);
					this.editwin.show(Ext.getDom('login-view'));//
					this.editwin.on('editok',function(){this.getStore().reload()},this);
				}
			}, '-', {
				text : '刷新',
				scope : this,
				iconCls : 'refreshtty',
				handler : function() {
					this.getStore().reload();
				}
			}]
		});
		this.addwin.on('addok', function() {
					this.getStore().reload();
				}, this);
	},
	getcheckType : function(code) {
		return '<font color="red">' + getDataType(code) + '</font>';
	},
	getstandard_yearName : function(code) {
		return code + '年';
	},
	getstandard_typename : function(code) {
		return getstandard_type_name(code);
	},
	standard_participation_styleName : function(code) {
		return getstandard_type_partake_name(code);
	},
	standard_check_passName : function(code) {
		return getCheckResultName(code);
	}
});
/**
 * 增加一条标准数据
 * 
 * @class addenterprsie_standard_formpanel
 * @extends Ext.form.FormPanel
 */
addenterprsie_standard_formpanel = Ext.extend(Ext.form.FormPanel, {
			constructor : function() {
				addenterprsie_standard_formpanel.superclass.constructor.call(
						this, {
							frame : true,
							height : 190,
							bodyStyle : 'padding: 10px 0px 0 10px;',
							labelWidth : 80,
							labelAlign : 'right',
							defaults : {
								anchor : '95%',
								allowBlank : true,
								msgTarget : 'side'
							},
							items : [{
										xtype : 'hidden',
										name : 'userid',
										value : userId
									}, {
										xtype : 'textfield',
										fieldLabel : '申报年度',
										anchor : '99%',
										name : 'type',
										readOnly : true,
										disabled : true,
										value : OPTION_NDDECLARE_YEAR + '年'
												+ getDataType(OPTION_DATA_TYPE)
												+ ''
									}, {
										xtype : 'combo',
										fieldLabel : '标准类型',
										hiddenName : 'standard_type',
										triggerAction : 'all',
										displayField : 'name',
										readOnly : true,
										valueField : 'id',
										mode : 'local',
										anchor : '99%',
										store : standard_type_combox_store,
										emptyText : '请选择类型',
										allowBlank : false,
										blankText : '请选择类型'
									}, {
										xtype : 'textfield',
										fieldLabel : '标准名称',
										name : 'standard_name',
										allowBlank : false,
										blankText : '标准名称不能为空',
										anchor : '99%'
									}, {
										xtype : 'combo',
										fieldLabel : '参与方式',
										hiddenName : 'standard_participation_style',
										triggerAction : 'all',
										displayField : 'name',
										readOnly : true,
										valueField : 'id',
										mode : 'local',
										anchor : '99%',
										store : standard_type_partake_combox_store,
										emptyText : '请选择参与方式',
										allowBlank : false,
										blankText : '请选择参与方式'
									}, {
										xtype : 'datefield',
										fieldLabel : '制定时间',
										name : 'standard_time',
										allowBlank : false,
										blankText : '制定时间不能为空',
										anchor : '99%'
									}]
						});
			}
		});
/**
 * 增加面板窗口
 * 
 * @class addenterprsie_standard_formpanel_win
 * @extends Ext.Window
 */
addenterprsie_standard_formpanel_win = Ext.extend(Ext.Window, {
	panel : null,
	constructor : function() {
		this.panel = new addenterprsie_standard_formpanel();
		addenterprsie_standard_formpanel_win.superclass.constructor.call(this,
				{
					width : 500,
					title : '申报<font color="red">' + OPTION_NDDECLARE_YEAR
							+ '年' + getDataType(OPTION_DATA_TYPE)
							+ '</font>标准制定数据',
					iconCls : 'itemadd',
					// layout : 'form',
					closeAction : 'hide',
					frame : true,
					modal : true,
					plain : true,
					items : this.panel,
					buttons : [{
								text : '保存草稿',
								scope : this,
								iconCls : 'itemadd',
								handler : this.submit
							}, {
								text : '取消',
								scope : this,
								iconCls : 'cancel',
								handler : function() {
									this.panel.getForm().reset();
									this.hide()
								}
							}]
				});
		this.addEvents('addok');
	},
	submit : function() {
		var form = this.panel.getForm();
		if (!form.isValid()) {
			Ext.Msg.show({
						title : '提示',
						msg : '数据没有填写完整',
						icon : Ext.Msg.WARNING,
						buttons : Ext.MessageBox.OK
					});
			return;
		} else {
			var uid = form.findField('userid').getValue();
			var standard_type = form.findField('standard_type').getValue();
			var standard_name = form.findField('standard_name').getValue();
			var standard_participation_style = form
					.findField('standard_participation_style').getValue();
			var standard_time = form.findField('standard_time').getValue();
			var year = OPTION_NDDECLARE_YEAR;
			var type = OPTION_DATA_TYPE;
			Ext.Ajax.request({
				url : 'cxxqysjsb/enterprise_standard/insertnewenterprisestandarddata.action?',
				params : {
					uid : uid,
					year : year,
					type : type,
					standard_type : standard_type,
					standard_name : standard_name,
					standard_participation_style : standard_participation_style,
					standard_time : standard_time
				},
				scope : this,
				success : function(response, options) {
					if (response.responseText == 'ok') {
						this.fireEvent('addok');
						this.hide();
					} else if (response.responseText == 'fail') {
						Ext.Msg.show({
									title : '提示',
									msg : '数据传输失败',
									icon : Ext.Msg.WARNING,
									buttons : Ext.Msg.OK
								});
						return;
					}
				}
			});
		}
	}
});
/**
 * 修改面板
 * 
 * @class editenterprsie_standard_formpanel
 * @extends Ext.form.FormPanel
 */
editenterprsie_standard_formpanel = Ext.extend(Ext.form.FormPanel, {
			cfg : null,
			constructor : function(_cfg) {
				this.cfg = _cfg;
				editenterprsie_standard_formpanel.superclass.constructor.call(
						this, {
							frame : true,
							height : 150,
							bodyStyle : 'padding: 10px 0px 0 10px;',
							labelWidth : 80,
							labelAlign : 'right',
							defaults : {
								anchor : '95%',
								allowBlank : true,
								msgTarget : 'side'
							},
							items : [{
								xtype : 'hidden',
								name : 'sid',
								value : this.cfg.sid
									// 标准ID
								}, {
								xtype : 'hidden',
								name : 'eid',
								value : this.cfg.eid
									// 企业ID
								}, {
								xtype : 'combo',
								fieldLabel : '标准类型',
								hiddenName : 'standard_type',
								triggerAction : 'all',
								displayField : 'name',
								readOnly : true,
								valueField : 'id',
								mode : 'local',
								anchor : '99%',
								value : this.cfg.standard_type,
								store : standard_type_combox_store,
								emptyText : '请选择类型',
								allowBlank : false,
								blankText : '请选择类型'
							}, {
								xtype : 'textfield',
								fieldLabel : '标准名称',
								value : this.cfg.standard_name,
								name : 'standard_name',
								allowBlank : false,
								blankText : '标准名称不能为空',
								anchor : '99%'
							}, {
								xtype : 'combo',
								fieldLabel : '参与方式',
								hiddenName : 'standard_participation_style',
								triggerAction : 'all',
								value : this.cfg.standard_participation_style,
								displayField : 'name',
								readOnly : true,
								valueField : 'id',
								mode : 'local',
								anchor : '99%',
								store : standard_type_partake_combox_store,
								emptyText : '请选择参与方式',
								allowBlank : false,
								blankText : '请选择参与方式'
							}, {
								xtype : 'datefield',
								fieldLabel : '制定时间',
								value : this.cfg.standard_time,
								name : 'standard_time',
								allowBlank : false,
								blankText : '制定时间不能为空',
								anchor : '99%'
							}]
						})
			}
		});
editenterprsie_standard_formpanel_win = Ext.extend(Ext.Window, {
	cfg : null,
	panel : null,
	constructor : function(_cfg) {
		this.cfg = _cfg;
		this.panel = new editenterprsie_standard_formpanel(this.cfg);
		editenterprsie_standard_formpanel_win.superclass.constructor.call(this,
				{
					width : 500,
					title : '修改<font color="red">' + this.cfg.standard_year
							+ '年' + getDataType(this.cfg.standard_type_sb)
							+ '</font>标准数据',
					iconCls : 'configmanage',
					// layout : 'form',
					closeAction : 'hide',
					frame : true,
					modal : true,
					plain : true,
					items : this.panel,
					buttons : [{
								text : '保存修改草稿',
								scope : this,
								iconCls : 'itemadd',
								handler : this.submit
							}, {
								text : '取消',
								scope : this,
								iconCls : 'cancel',
								handler : function() {
									this.hide()
								}
							}]
				});
		this.addEvents('editok');
	},
	submit : function() {
		var form = this.panel.getForm();
		if (form.isValid()) {
			var sid = form.findField('sid').getValue();
			var eid = form.findField('eid').getValue();
			var standard_type = form.findField('standard_type').getValue();
			var standard_name = form.findField('standard_name').getValue();
			var standard_participation_style = form
					.findField('standard_participation_style').getValue();
			var standard_time = form.findField('standard_time').getValue();
			Ext.Ajax.request({
				url : 'cxxqysjsb/enterprise_standard/updateenterprisestandarddata.action?',
				params : {
					sid : sid,
					eid : eid,
					standard_type : standard_type,
					standard_name : standard_name,
					standard_participation_style : standard_participation_style,
					standard_time : standard_time
				},
				scope : this,
				success : function(response, options) {
					if (response.responseText == 'ok') {
						this.fireEvent('editok');
						this.hide();
					} else if (response.responseText == 'fail') {
						Ext.Msg.show({
									title : '提示',
									msg : '数据传输失败',
									icon : Ext.Msg.WARNING,
									buttons : Ext.Msg.OK
								});
						return;
					}
				}
			});
		} else {
			Ext.Msg.show({
						title : '提示',
						msg : '请填写完整数据',
						icon : Ext.Msg.WARNING,
						buttons : Ext.Msg.OK
					});
			return;
		}
	}
})
Ext.extend(demo.module, {
			init : function() {
				this.datareportstandard = new enterprsie_standard_info_grid();
				this.main.add(this.datareportstandard);
				this.main.doLayout();
			}
		});